home *** CD-ROM | disk | FTP | other *** search
/ C/C++ Users Group Library 1996 July / C-C++ Users Group Library July 1996.iso / listings / v_12_11 / allison / virt.cpp < prev   
C/C++ Source or Header  |  1994-09-05  |  530b  |  44 lines

  1. LISTING 7 - Illustrates virtual functions
  2. // virt.cpp
  3. #include <iostream.h>
  4.  
  5. // Base class
  6. class B
  7. {
  8. public:
  9.     virtual void f()
  10.     {
  11.         cout << "B::f" << endl;
  12.     }
  13. };
  14.  
  15. // Derived class
  16. class D : public B
  17. {
  18. public:
  19.     virtual void f()
  20.     {
  21.         cout << "D::f" << endl;
  22.     }
  23. };
  24.  
  25. main()
  26. {
  27.     B *bp[2];  // Heterogeneous array
  28.     B b;
  29.     D d;
  30.  
  31.     bp[0] = &b;
  32.     bp[1] = &d;
  33.  
  34.     for (int i = 0; i < 2; ++i)
  35.         bp[i]->f();
  36.     return 0;
  37. }
  38.  
  39. /* Output:
  40. B::f
  41. D::f
  42. */
  43.  
  44.